/**
 * JS中的安全模式
 */

//例如：
var Person = function (name) {
  this.name = name
}

var jack = Person('Jack');

console.log(jack)  // undefined
console.log(window.jack) // Jack

//以上例子属于不安全模式

//安全模式：
var Person = function (name) {
  if (this instanceof Person) {
    this.name = name
  } else {
    return new Person(name)
  }
}
var jack = Person('Jack')
console.log(jack.name) // Jack

//可以在多个JS框架源码中看到其应用的影子
//创建时没有用到new,this指向的是window,因此在全局下会添加一个name
